package com.gujiangbo.application.common.trace.context;

import java.util.Map;

public interface TraceContext {
	public static final String REMOTE_IP = "bme.context.remoteip";
	public static final String LOCALE = "bme.context.locale";
	public static final String SESSION_ID = "bme.context.sessionid";
	public static final String USER_ID = "bme.context.userid";
	public static final String OPERATOR_ID = "bme.context.operatorid";
	public static final String UPLOAD_ROOT = "bme.context.uploadroot";
	public static final String TRACE_ID = "traceID";
	public static final String TRACE_FLAG = "TraceFlag";
	public static final String CALL_NUMBER = "CallNumber";
	public static final String SEQ_NO = "seqNo";
	public static final String EXTEND_INFO = "extendInfo";
	public static final String PLATFORM_EXTEND_INFO = "PlatformExtendInfo";
	public static final String CODE_STREAM_KEY = "CodeStream";
	public static final String COMPARED_TRACE_KEY = "hasComparedTrace";
	public static final String SKIN_ID = "bme.context.skinid";
	public static final String B_FMT_ZONE = "bme.context.browser.fmt.timezone";
	public static final String CONVERSATION = "bme.context.conversation";
	public static final String APP_NAME = "app_Name";
	public static final int SCOPE_REQUEST = 0;
	public static final int SCOPE_SESSION = 1;
	public static final int SCOPE_THREAD = 2;

	public abstract void setContext(String paramString, Object paramObject);

	public abstract void setContext(String paramString, Object paramObject, int paramInt, Object... paramVarArgs);

	public abstract void addContexts(Map<String, Object> paramMap);

	public abstract Object getContext(String paramString);

	public abstract Object getContext(String paramString, int paramInt, Object... paramVarArgs);

	public abstract Map<String, Object> getContexts();

	public abstract String getTraceID();

	public abstract void setTraceID(String paramString);

	public abstract String getCallLinkId();

	public abstract void setCallLinkId(String paramString);

	public abstract void setBaseSeqNo(String paramString);

	public abstract void newCallLinkId();

	public abstract String getNextSeqNo();

	public abstract String getSeqNo();

	public abstract int getTraceFlag();

	public abstract void setTraceFlag(int paramInt);

	public abstract void setCallNumber(int paramInt);

	public abstract int getCallNumber();

	public abstract void sethasComparedTrace(boolean paramBoolean);

	public abstract boolean gethasComparedTrace();

	public abstract String getAppName();

	public abstract void pushCount(int paramInt);

	public abstract void setAppName(String paramString);

	public abstract void popStack();

	public abstract void clearTraceLinkInfo();

	public abstract void removeAttribute(String paramString);

	public abstract String getServerHeader();

	public abstract void setServerHeader(String paramString);

	public abstract boolean isTraceEnabled();

}
